Most media today is either static or temporal. Static media does not change with playing or viewing time, and is exemplified by images, three-dimensional objects and text. Unlike static media, temporal media changes with playing or viewing time. Examples of temporal media are audio, video and three-dimensional animation. One problem with static and temporal media is that there is no history. For example, if a person comes late to a meeting, the person will have no way to determine what previously occurred in the meeting. Similarly, in a seminar where slides are used, a person who arrives late to the seminar cannot determine what slides have been seen. While it is possible, if the meeting or seminar has been electronically saved, for the person to review the missed portions at some other time, there is no way for a person to quickly catch up on what was missed. Thus, no history and no coarse representation of the meeting are available.
One area where this has particular relevance is in the area of whiteboard collaboration. Recently, whiteboard collaboration has been specified as a standard collaboration application, and there are commercial products that have been widely installed in personal computers and that have been implemented as part of collaborative infrastructures. With the latest advance of the electronic pen and whiteboard technologies, more human-friendly whiteboard input devices have become available for capturing whiteboard strokes. Instead of traditional and awkward mouse drawing, these technologies provide freehand writing directly on physical whiteboards or pads. As such, they dramatically enhance the importance of the whiteboard in a collaborative infrastructure. In a traditional whiteboard collaboration session, strokes generated by mouse drawing events are mainly used for annotations on existing drawings. The amount of stroke data generated is therefore rather small. With the new “friendly” stroke input devices, it is expected that the strokes will not only be used for annotations, but also as the main input to generate drawings. Therefore, the amount of stroke data of a whiteboard collaboration session is increasing dramatically.
It is well known that information redundancy exists in the stroke data. Stroke data, thus, has the characteristics of large amounts of data and file size, dynamic changes of content over time, and information redundancy. These characteristics make stroke data similar to continuous media streams such as audio and video, which exhibit similar characteristics. Stroke data, like these other continuous media streams, does not contain history and cannot be quickly reviewed.
There have been many studies concerning reducing the number of points required to represent a stroke line. However, these studies were mainly designed to preserve the features of a line for cartography or handwriting recognition applications. There were additional efforts in the design of true type fonts to make use of spline curves to compress the number of points used to display characters. This is explained in more detail in “True type 1.0 font files,” a Microsoft technical specification, revision 1.66, 1995, and in “The compact font format specification,” Version 1.0, Adobe, 1998, the disclosures of which are incorporated herein by reference. Therefore, while stroke data can be compressed, there is still no way to determine any type of history of the stroke data. There is also no way for a person to view only a coarse representation of the stroke data. Instead, the entire stroke data must be viewed.
Another problem occurs because of the way media is stored. Generally, media is stored in some type of data structure. For instance, digital video is usually stored in a hierarchical data structure, also known as a scene graph. In this format, data elements are stored in nodes, and a hierarchical data structure is similar to a tree in the sense that it starts at a “root” node and continues onward until it ends at “leaf” nodes. Hierarchical data structures are very good for video, because video is normally transmitted by transmitting each frame, starting at the first frame and ending at the last frame.
However, if a user wishes to access this frame sequence out of order, then a hierarchical data structure is less advantageous because it is not really designed for this purpose. Moreover, there is no “guide” or “map” that describes what the data in the hierarchical data structure is, where it is, and how it is stored. There is no simple way to access one node of a large hierarchical data structure, without starting at the root node and traversing the graph until the required data is retrieved.
There are other ways to store video and other media. However, these methods have similar problems in that there is currently no techniques for quickly and repeatedly accessing data elements in a currently existing data structure.
Consequently, techniques are needed for determining and transmitting history or coarse representations or both of stroke media and other media, and techniques are needed to be able to quickly and repeatedly access data elements in these media.